package cn.com.code.design;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author zhengpei
 * @date 2021/9/16
 */
public class QuestionBankController {

  public String createPaper(String candidate, String number) {
    List<ChoiceQuestion> choiceQuestionList = new ArrayList<ChoiceQuestion>();
    choiceQuestionList.add(new ChoiceQuestion("JAVA所定义的版本中不包括", new HashMap<String, String>() {{
      put("A", "JAVA2 EE");
      put("B", "JAVA2 Card");
      put("C", "JAVA2 ME");
      put("D", "JAVA2 HE");
      put("E", "JAVA2 SE");
    }}, "D"));

    choiceQuestionList.add(new ChoiceQuestion("下列说法正确的是", new HashMap<String, String>() {{
      put("A", "JAVA程序的main方法必须写在类里面");
      put("B", "JAVA程序中可以有多个main方法");
      put("C", "JAVA程序中类名必须与文件名一样");
      put("D", "JAVA程序的main方法中如果只有一条语句，可以不用{}(大括号)括起来");
    }}, "A"));
    choiceQuestionList.add(new ChoiceQuestion("变量命名规范说法正确的是", new HashMap<String, String>() {{
      put("A", "变量由字母、下划线、数字、$符号随意组成；");
      put("B", "变量不能以数字作为开头；");
      put("C", "A和a在java中是同一个变量；");
      put("D", "不同类型的变量，可以起相同的名字；");
    }}, "B"));
    choiceQuestionList.add(new ChoiceQuestion("以下()不是合法的标识符", new HashMap<String, String>() {{
      put("A", "STRING");
      put("B", "x3x;");
      put("C", "void");
      put("D", "de$f");
    }}, "C"));
    choiceQuestionList.add(new ChoiceQuestion("表达式(11+3*8)/4%3的值是", new HashMap<String, String>() {{
      put("A", "31");
      put("B", "0");
      put("C", "1");
      put("D", "2");
    }}, "D"));

    List<AnswerQuestion> answerQuestionList = new ArrayList<AnswerQuestion>();
    answerQuestionList.add(new AnswerQuestion("小红马和小黑马生的小马几条腿", "4条腿"));
    answerQuestionList.add(new AnswerQuestion("铁棒打头疼还是木棒打头疼", "头最疼"));
    answerQuestionList.add(new AnswerQuestion("什么床不能睡觉", "牙床"));
    answerQuestionList.add(new AnswerQuestion("为什么好马不吃回头草", "后面的草没了"));

    // 输出结果
    StringBuilder detail = new StringBuilder("考生：" + candidate + "\r\n" +
        "考号：" + number + "\r\n" +
        "--------------------------------------------\r\n" +
        "一、选择题" + "\r\n\n");

    for (int idx = 0; idx < choiceQuestionList.size(); idx++) {
      detail.append("第").append(idx + 1).append("题：").append(choiceQuestionList.get(idx).getName()).append("\r\n");
      Map<String, String> option = choiceQuestionList.get(idx).getOption();
      for (String key : option.keySet()) {
        detail.append(key).append("：").append(option.get(key)).append("\r\n");;
      }
      detail.append("答案：").append(choiceQuestionList.get(idx).getKey()).append("\r\n\n");
    }

    detail.append("二、问答题" + "\r\n\n");

    for (int idx = 0; idx < answerQuestionList.size(); idx++) {
      detail.append("第").append(idx + 1).append("题：").append(answerQuestionList.get(idx).getName()).append("\r\n");
      detail.append("答案：").append(answerQuestionList.get(idx).getKey()).append("\r\n\n");
    }

    return detail.toString();  }

}
